Email as a transport mechanism for acvity stream posting

ABSTRACT

A method, system and computer program product for utilizing email as a transport mechanism for activity stream posting. The method, program system, and computer product may include receiving an email, with content, at a target email system of a target from a source email system of a source. Content that is to be posted to an activity stream is extracted from the email content. The extracted content is posted to the activity stream. The method, program system, and computer product may further include examining the email at the target to identify whether the email includes content that is to be posted to the activity stream, or the target email system may deliver the email to a designated email address mailbox assigned to emails containing content to be sent to the activity stream. A notification of the email may be provided or the mailbox may be checked for email.

BACKGROUND

Aspects of the present invention relate to communication of eventsbetween or within one or more computer systems, and more particularly toa method, system, and computer program product for transport ofinformation or data via email to be posted in an activity stream.

An activity stream may be considered to be an ongoing flow of relevantevents scoped to a person, topic, project, or otherwise. Activitystreams are becoming a more common mechanism in software services,particularly social systems (e.g., Facebook® (FACEBOOK is a registeredtrademark of Facebook, Inc.), IBM Smart Cloud for Social Business,etc.). Current mechanisms require direct interaction between the eventsource and the event feed, where either the event source pushes eventsto the activity stream via defined Application Programming Interfaces(APIs) or the activity stream pulls events from the source via afeed-like method. There are a set of scenarios, though, where thesemethods are lacking, for example, when the source is unable to reach thestream through normal access such as may be the case when behind afirewall or otherwise unavailable for web-based access, when the streamdoes not have open or standard interfaces, when synchronous interactionis not possible, and when the source is older and potentiallyunmodifiable code. In such cases, an alternate method of transport forevents is desirable.

BRIEF SUMMARY

According to one aspect of the present invention, a method is providedfor utilizing email for activity stream posting. The method includesreceiving, by a processing device, an email, which includes content, ata target email system of a target from a source email system of asource. Content that is to be posted to an activity stream is extractedfrom the email, by a processing device, content. The extracted contentis posted, by a processing device, to the activity stream.

According to another aspect of the present invention, a system forutilizing email for activity stream posting is provided. The systemincludes a processor and a module for utilizing email for activitystream posting. The module includes a module for receiving an email,which includes content, at a target email system of a target from asource email system of a source, a module for extracting from the emailcontent that is to be posted to an activity stream, and a module forposting the extracted content to the activity stream.

According to a further aspect of the present invention, a computerprogram product for utilizing email for activity stream posting. Thecomputer program product includes a computer readable storage mediumhaving computer readable program code embodied therewith, and thatincludes computer readable program code configured to receive an email,which includes content, at a target email system of a target from asource email system of a source. The code further includes computerreadable program code configured to extract from the email content thatis to be posted to an activity stream, and computer readable programcode configured to post the extracted content to the activity stream.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The present invention is further described in the detailed descriptionwhich follows in reference to the noted plurality of drawings by way ofnon-limiting examples of embodiments of the present invention in whichlike reference numerals represent similar parts throughout the severalviews of the drawings and wherein:

FIG. 1 is a flowchart of an example of a method for utilizing email foractivity stream posting in accordance with an embodiment.

FIG. 2 is a block schematic diagram of an example of a system forutilizing email for activity stream posting in accordance with anembodiment.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing. Computer program code for carrying out operations foraspects of the present invention may be written in any combination ofone or more programming languages, including an object orientedprogramming language such as Java, Smalltalk, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Embodiments disclosed herein leverage the capabilities of email, aubiquitous and existing form of transport, allowing older or otherwiseunconnected systems to communicate indirectly through email as thetransport mechanism. For older or closed systems, the commonality andnearly universal enablement for email makes it a viable alternative forpushing events from a source to an activity stream. This is alsoeffective when the activity stream may have limited availability for avariety of reasons, since email is an asynchronous medium. Such use ofemail may also provide integration with existing compliance or backupsystems already set up for email when they are not available foractivity streams. Accordingly, the features of email of addressability,universal connectivity and asynchronous delivery, and depending on themethod of scanning, possibly storage may be beneficial to its use.

In some embodiments, an indication that content of an email is intendedfor posting to an activity stream is included in the email to triggerhandling by the target, which is subject to the activity stream system.These emails may be identified as may occur through scanning incomingemails or by having a dedicated batch-processed stream-specific emailaddress to which the emails may be sent. When a relevant email isidentified, the corresponding activity stream entry may be created usinginformation from the email and potentially additional information froman available repository. Depending on settings at the target, the emailmay then be deleted, modified, or left untouched and saved. In this way,the email transport may be used as a mechanism for delivering activitystream events/entries from a source system (or any number of sourcesystems) to the activity stream system.

FIG. 1 shows two embodiments of a method 100 for posting an event to anactivity stream. First, at block 102, an event, which may be an actionas one example, occurs against or within the source service thatwarrants posting to the activity stream system. This action isrepresented by a set of fields in accordance with the requirements of ageneral activity stream, which may be, for example, based on theactivity stream's specification. This information for an event mayinclude an actor, verb, and object indicating who did what to what, whowill do what when, and so forth, or alternatively could beannouncements, statements, or the like. The data itself will berepresented by, for example, an Atom, JSON, or other representation,which may be a standardized data format. In a conventional system thisevent would be posted directly to the aggregator or saved for laterdirect retrieval by the aggregator.

Next, a source service prepares an email 104, or an individual does sowith a computer system, and if a source service, submits itprogrammatically 106 to the source email system. A source service may bea system that has the event that is appropriate for the activity stream.As one example, in a business social network, a purchase may be approvedin a workflow system. The approval could be the event that would beencoded into an email. Other examples of events may include, but not belimited to, a news story, travel request, or ecommerce purchase as anevent, and may also be implemented in consumer social networks as wellas other networks and systems. The addressing and content of this emaildepends on the specific mechanism being used for passing the informationand event, described in more detail below. The specific address can beknown or composed by the source service or looked up dynamically asneeded from an internal or external registry. For efficiency, multipleevents could be packaged into a single email message through the samemethods described here. In block 108, the source email system processesthe request to send the email in a like manner as other email, and theemail may be sent literally or functionally across a system disconnectbefore reaching a target. The system disconnect may be, for example, animposed impediment such as a firewall, or something else that preventsdirects communication from the source service or individual's computersystem to the aggregator, such as being unavailable for web-basedaccess, when the stream does not have open or standard interfaces, whensynchronous interaction is not possible, when the source is older andpotentially unmodifiable code, or when there are times when a targetsystem is unavailable to the source system (temporal unavailability).

There is, in this embodiment, no specific awareness or consideration ofthis email message and no specific handling of it between the sourceemail system and the target email system differently than other emailmessages. In block 110, this email is received by the target emailsystem through standard email delivery and is handled in the same manneras any other email. Depending on the addressing method being used, theemail will either be scanned during processing or simply posted to anappropriate target mailbox.

Whether through scanning incoming email or engaging with one or moreassigned mailboxes, the aggregator captures the email. Scanning mayinclude examining the email at the target to identify whether the emailincludes content that is to be posted to the activity stream, in otherwords, looking at some property of the email for an indication that theemail should be processed for the purposes of posting to the activitystream. If through scanning 112, the aggregator may identify keys, suchas data or metadata, in the email address or body that indicates thatthe email includes content intended to be sent to the activity stream.Examining may also include parsing the email and finding one or morepredetermined specific fields, keywords, format, tags, attachments, orany combination thereof to identify the content of the email that is tobe sent to the activity stream, or parsing the email and performingnatural language processing according to predetermined criteria toidentify the content of the email that is to be sent to the activitystream. Alternatively, if through delivery in one or more particulardesignated mailboxes 114 that may have as a sole or significant purposebeing a storage location for receiving emails with content intended foractivity stream posting, the aggregator either periodically checks oneor more mailboxes or is notified about the new mail 116 and retrieves itfrom the mailboxes 118.

Following blocks 112 or 118, as the case may be, in block 120, theaggregator extracts the recipient(s) and activity stream entry (orentries) from the email message and processes them as it wouldconventional pulled entries submitted directly to the aggregator. Inblock 122 the aggregator posts the activity stream entry to the activitystream. Examples of an activity stream 116 may include a socialnetworking feed, a collaborative work project, a news feed, and soforth. In block 116 the aggregator may delete the mail message, modifyit, simply leave it as is, or store or archive it in a designated fileassociated with the activity stream. If the email was scanned in block124, which may be during the delivery, the email is subsequentlydelivered to an appropriate target mailbox in block 126. Alternatively,the scanning could take place after the delivery of the email to theappropriate target mailbox.

In greater detail, there are at least three methods for addressing ofemails. In a first method, email may be addressed to the target user orusers who are being notified of the event. In such a case, emails wouldbe scanned as they pass into or through the recipient email system toensure processing. A particular item of data or metadata in the emailwould trigger processing by the aggregator. In addition, the aggregatormight delete, modify or leave untouched the email itself, depending onwhether it is desired to have the notification also exist in email. Thiscould be done based on properties in the email or on configurationsettings in the aggregator.

In a second method, email may be addressed to a single target mailboxreserved for the aggregator. In such a case, the aggregator would eitherscan this inbox periodically or be notified of new items delivered.Indication of the recipient(s) could be obtained from plain text or hashtag, perhaps in the subject line or perhaps elsewhere. Each email wouldbe then be processed and deleted.

In a third method, email may be addressed to one or more of a set oftarget mailboxes available to the aggregator but not intended forend-user usage. These mailboxes could be associated with a user, agroup, an event source, or otherwise segregated, and might also be usedby other services for processing. Each item would be processed as in thesingle mailbox case, although the specific mailbox used might provideadditional context for handling or directing the activity stream.

One way of handling of the content of emails is as follows. The relevantfields for the email can be passed in any form, and as visible orinvisible fields, as long as the content is available. The email couldeven simply be used to refer back to another source to obtain eventinformation. If this email is intended for delivery to the target useras well, the relevant fields could be removed from the email if desired.Additional information needed (for example, the gadget to leverage foran embedded experience) could be obtained by looking in a repositorywithin or external to the organization. The gadget, as one example, maybe a User Interface (UI) widget such as an OpenSocial Gadget. In such anexample, one email may not include all information needed for theactivity stream posting, but data may be extracted from the email toperform a separate lookup of additional data that is to be added to theactivity stream posting. In a specific embedded experience gadget case,which may mean that when an entry is selected in an activity stream UI,a side UI is launched to expand that particular item, with the gadgetbeing the form of that UI, there may be event data for the specificevent and a gadget URL to identify the gadget to load for the UI. Thegadget URL may be common to all events of this type, so instead ofhaving all of the necessary information included in each email, thegadget URL may be looked up by the target system as the resource for theremaining necessary information.

Multiple events could be batched together, being rolled up such thatthey are grouped together in one entry in the activity stream, andcollectively or individually targeted. The aggregator may be configuredto avoid posting of duplicate events, for example, by using assignedevent identification designations (event ID) and mail messageidentification designations (message ID) and/or event titles. Avoidingsaving a message may result where an event with the same event ID as thesubsequent mail message ID exists, or where an event with an exactduplicate title exists. Threading may be an approach, in which themessage ID is used as an object ID. In this way reply messages can berolled up as comments to an object by looking at the reply to themessage ID.

FIG. 2 is a block schematic diagram of an example of a system 200 forproviding email activity stream transport in accordance with anembodiment. The method 100 of FIG. 1 may be embodied in or performed bythe system 200. The system 200 may include a source service 202 and asource email system 204 on a server 206 or processing device and/or aprocessor 208 and source email system 210 on a client computer system212 or communications device. The source email systems 204, 210 sendemails 214 through a network 216, such as the Internet, an intranet, awide area network (WAN), local area network (LAN), or other network, toa target email system 218, which necessarily must be reachable by theapplicable source email system 204, 210. There may be a systemdisconnect 220. The email is able to pass through, avoid, or otherwisemitigate the system disconnect 220, if there is one.

The target email system 218, along with an aggregator 222 and activitystream 224, reside on at least one other server 226 or processingdevice. The target email system 218 is accessed by the aggregator 222,which, as discussed above, accesses the target email system 218 toextract content from the email 214 and posts the content to an activitystream 224.

The servers 206, 226 and computer system 212 include a processor tocontrol operation and a file system, memory, or similar data storagedevice. An operating system may be stored on the file system for runningor operating on the processor. The modules for the source service 202,the source email systems 204, 210, the target email system 218, theaggregator 222, and the activity stream 224 may be stored on a computerreadable storage medium or computer program product including a computerreadable storage medium similar to that previously described, such ascomputer program product 226.

The flowcharts and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems which perform the specified functions or acts, or combinationsof special purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of embodiments ofthe invention. As used herein, the singular forms “a”, “an” and “the”are intended to include the plural forms as well, unless the contextclearly indicates otherwise. It will be further understood that theterms “comprises” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to embodiments of the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of embodiments ofthe invention. The embodiment was chosen and described in order to bestexplain the principles of embodiments of the invention and the practicalapplication, and to enable others of ordinary skill in the art tounderstand embodiments of the invention for various embodiments withvarious modifications as are suited to the particular use contemplated.

Although specific embodiments have been illustrated and describedherein, those of ordinary skill in the art appreciate that anyarrangement which is calculated to achieve the same purpose may besubstituted for the specific embodiments shown and that embodiments ofthe invention have other applications in other environments. Thisapplication is intended to cover any adaptations or variations of thepresent invention. The following claims are in no way intended to limitthe scope of embodiments of the invention to the specific embodimentsdescribed herein.

1-14. (canceled)
 15. A system for utilizing email as a transportmechanism for activity stream posting, the system comprising: aprocessor; a module, operating on the processor, for utilizing email foractivity stream posting, the module comprising: a module for receivingan email at a target email system of a target from a source email systemof a source, the email including content; a module for extracting fromthe email content that is to be posted to an activity stream; and amodule for posting the extracted content to the activity stream.
 16. Thesystem of claim 15, further comprising a module for examining the emailat the target to identify whether the email includes content that is tobe posted to the activity stream.
 17. The system of claim 15, furthercomprising a module for receiving a notification that there is an emailin the designated email address mailbox or checking the mailbox for thepresence of the email, and retrieving or copying the email from thedesignated email address mailbox.
 18. A computer program product forutilizing email as a transport mechanism for activity stream posting,the computer program product comprising: a computer readable storagemedium having computer readable program code embodied therewith, thecomputer readable program code comprising: computer readable programcode configured to receive an email at a target email system of a targetfrom a source email system of a source, the email including content;computer readable program code configured to extract from the emailcontent that is to be posted to an activity stream; and computerreadable program code configured to post the extracted content to theactivity stream.
 19. The computer program product of claim 18, furthercomprising computer readable program code configured to examine theemail at the target to identify whether the email includes content thatis to be posted to the activity stream.
 20. The computer program productof claim 19, further comprising computer readable program codeconfigured to receive a notification that there is an email in thedesignated email address mailbox or checking the mailbox for thepresence of the email, and retrieve or copy the email from thedesignated email address mailbox.
 21. The system of claim 16, whereinexamining the email comprises parsing the email and finding one or morepredetermined specific fields, keywords, format, tags, attachments, orany combination thereof to identify the content of the email that is tobe sent to the activity stream.
 22. The system of claim 16, whereinexamining the email comprises parsing the email and performing naturallanguage processing according to predetermined criteria to identify thecontent of the email that is to be sent to the activity stream.
 23. Thesystem of claim 16, wherein examining the email comprises recognizingdata or metadata associated with the email that indicates that the emailincludes content intended to be sent to the activity stream.
 24. Thesystem of claim 15, further comprising a module for delivering the emailfrom the target email system to a designated email address mailboxassigned to emails containing content to be sent to the activity stream.25. The system of claim 24, further comprising module for receiving anotification that there is an email in the designated email addressmailbox or checking the mailbox for the presence of the email, andretrieving or copying the email from the designated email addressmailbox.
 26. The system of claim 15, wherein the email is an initialemail and includes a message ID, and further comprising a module fordeleting or not saving a subsequent email having the same message IDindicating information redundant with the initial email.
 27. The systemof claim 15, further comprising a module for generating the email by asource service and for submitting the email to the source email system.28. The system of claim 27, wherein the email generated by the sourceservice includes an event ID, and the event ID is used for identifyingcontent that is to be posted to the activity stream.
 29. The system ofclaim 28, wherein the email is an initial email, and further comprisinga module for deleting or not saving a subsequent email having the sameevent ID indicating information redundant with the initial email. 30.The system of claim 15, further comprising a module for deleting ormodifying the email after identification of content to be sent to theactivity stream.
 31. The system of claim 15, wherein the activity streamis a social networking feed, a collaborative work project, or a newsfeed.
 32. The system of claim 15, wherein the source and target cannotcommunicate, except by email, without action being taken to remove,mitigate, or avoid a system disconnect.
 33. The computer program productof claim 18, further comprising computer readable program codeconfigured to deliver the email from the target email system to adesignated email address mailbox assigned to emails containing contentto be sent to the activity stream.
 34. The computer program product ofclaim 18, wherein the email is an initial email and includes a messageID, and further comprising computer readable program code configured todelete or not save a subsequent email having the same message IDindicating information redundant with the initial email.